这篇文章发布于 1080 天前,部分信息可能已经发生变化。
需求:第三方系统(例:FineReport )使用U9账号+密码做登录验证:
/// <summary>
/// 用户密码转为加密密码
/// </summary>
/// <param name="inputpass">用户输入的密码</param>
/// <param name="Salt">U9加盐字段:Salt</param>
/// <param name="DBPass">U9数据库密码</param>
/// <returns></returns>
private bool PassMD5(string inputpass, string Salt, string DBPass)
{
Chilkat.Crypt2 crypt = new Chilkat.Crypt2();
crypt.HashAlgorithm = "md5";
crypt.EncodingMode = "base64";
// Output is zgv9FQWbaNZ2iIhNej0+jA== (we are now hashing 2
bytes/char)
crypt.Charset = "Unicode";
string MD5pass = crypt.HashStringENC(inputpass); //u9旧加密:md5 +
base64 + Unicode
string U9Pass = MD5pass.MDString(Salt).ToUpper(); // MD5加盐加密 加密为
32位MD5大写
return DBPass == U9Pass;
}
引用2个库: